/*
 * Selling Partner API for Orders
 * Use the Orders Selling Partner API to programmatically retrieve order information. With this API, you can develop fast, flexible, and custom applications to manage order synchronization, perform order research, and create demand-based decision support tools.   _Note:_ For the JP, AU, and SG marketplaces, the Orders API supports orders from 2016 onward. For all other marketplaces, the Orders API supports orders for the last two years (orders older than this don't show up in the response).
 *
 * OpenAPI spec version: v0
 * 
 *
 * NOTE: This class is auto generated by the swagger code generator program.
 * https://github.com/swagger-api/swagger-codegen.git
 * Do not edit the class manually.
 */


package io.swagger.client.model;

import java.util.Objects;
import java.util.Arrays;
import com.google.gson.TypeAdapter;
import com.google.gson.annotations.JsonAdapter;
import com.google.gson.annotations.SerializedName;
import com.google.gson.stream.JsonReader;
import com.google.gson.stream.JsonWriter;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.IOException;

/**
 * The container for address extended fields (such as &#x60;street name&#x60; and &#x60;street number&#x60;). Currently only available with Brazil shipping addresses.
 */
@ApiModel(description = "The container for address extended fields (such as `street name` and `street number`). Currently only available with Brazil shipping addresses.")
@javax.annotation.Generated(value = "io.swagger.codegen.languages.JavaClientCodegen", date = "2024-09-20T09:03:02.625+08:00")
public class AddressExtendedFields {
  @SerializedName("StreetName")
  private String streetName = null;

  @SerializedName("StreetNumber")
  private String streetNumber = null;

  @SerializedName("Complement")
  private String complement = null;

  @SerializedName("Neighborhood")
  private String neighborhood = null;

  public AddressExtendedFields streetName(String streetName) {
    this.streetName = streetName;
    return this;
  }

   /**
   * The street name.
   * @return streetName
  **/
  @ApiModelProperty(value = "The street name.")
  public String getStreetName() {
    return streetName;
  }

  public void setStreetName(String streetName) {
    this.streetName = streetName;
  }

  public AddressExtendedFields streetNumber(String streetNumber) {
    this.streetNumber = streetNumber;
    return this;
  }

   /**
   * The house, building, or property number associated with the location&#39;s street address.
   * @return streetNumber
  **/
  @ApiModelProperty(value = "The house, building, or property number associated with the location's street address.")
  public String getStreetNumber() {
    return streetNumber;
  }

  public void setStreetNumber(String streetNumber) {
    this.streetNumber = streetNumber;
  }

  public AddressExtendedFields complement(String complement) {
    this.complement = complement;
    return this;
  }

   /**
   * The floor number/unit number in the building/private house number.
   * @return complement
  **/
  @ApiModelProperty(value = "The floor number/unit number in the building/private house number.")
  public String getComplement() {
    return complement;
  }

  public void setComplement(String complement) {
    this.complement = complement;
  }

  public AddressExtendedFields neighborhood(String neighborhood) {
    this.neighborhood = neighborhood;
    return this;
  }

   /**
   * The neighborhood. This value is only used in some countries (such as Brazil).
   * @return neighborhood
  **/
  @ApiModelProperty(value = "The neighborhood. This value is only used in some countries (such as Brazil).")
  public String getNeighborhood() {
    return neighborhood;
  }

  public void setNeighborhood(String neighborhood) {
    this.neighborhood = neighborhood;
  }


  @Override
  public boolean equals(java.lang.Object o) {
    if (this == o) {
      return true;
    }
    if (o == null || getClass() != o.getClass()) {
      return false;
    }
    AddressExtendedFields addressExtendedFields = (AddressExtendedFields) o;
    return Objects.equals(this.streetName, addressExtendedFields.streetName) &&
        Objects.equals(this.streetNumber, addressExtendedFields.streetNumber) &&
        Objects.equals(this.complement, addressExtendedFields.complement) &&
        Objects.equals(this.neighborhood, addressExtendedFields.neighborhood);
  }

  @Override
  public int hashCode() {
    return Objects.hash(streetName, streetNumber, complement, neighborhood);
  }


  @Override
  public String toString() {
    StringBuilder sb = new StringBuilder();
    sb.append("class AddressExtendedFields {\n");
    
    sb.append("    streetName: ").append(toIndentedString(streetName)).append("\n");
    sb.append("    streetNumber: ").append(toIndentedString(streetNumber)).append("\n");
    sb.append("    complement: ").append(toIndentedString(complement)).append("\n");
    sb.append("    neighborhood: ").append(toIndentedString(neighborhood)).append("\n");
    sb.append("}");
    return sb.toString();
  }

  /**
   * Convert the given object to string with each line indented by 4 spaces
   * (except the first line).
   */
  private String toIndentedString(java.lang.Object o) {
    if (o == null) {
      return "null";
    }
    return o.toString().replace("\n", "\n    ");
  }

}

